////#ifndef _ZHANGQUEUE_H_
////#define _ZHANGQUEUE_H_
////struct ZhangQueueNode{
////	int data = 50000;
////	ZhangQueueNode* next = nullptr;
////	ZhangQueueNode* prev = nullptr;
////};
////class ZhangQueue {
////private:
////	int length;
////	ZhangQueueNode* head;
////	ZhangQueueNode* tail;
////public:
////	ZhangQueue();
////	~ZhangQueue();
////	bool is_emptyQueue();
////	void PushQueue(int data);
////	int PopQueue();
////};
////#endif
//#ifndef _ZHANGQUEUE_H_
//#define _ZHANGQUEUE_H_
//template<typename T>
//struct ZhangQueueNode{
//	T data;
//	ZhangQueueNode<T>* next = nullptr;
//	ZhangQueueNode<T>* prev = nullptr;
//};
//template<typename T>
//class ZhangQueue {
//private:
//	int length;
//	ZhangQueueNode<T>* head;
//	ZhangQueueNode<T>* tail;
//public:
//	ZhangQueue();
//	~ZhangQueue();
//	bool is_emptyQueue();
//	void PushQueue(T data);
//	T PopQueue();
//	void lPrintQueue();
//	void rPrintQueue();
//	int getLength();
//};
//#endif
